package com.ruoyi.reim.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 报销审批明细对象 workflow_reim_detail
 *
 * @author ruoyi
 * @date 2021-07-16
 */
public class WorkflowReimDetail
{
    private static final long serialVersionUID = 1L;

    /** 报销明细id */
    private Integer id;

    /** 报销基本信息id */
    @Excel(name = "报销基本信息id")
    private String rId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String prjCode;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String prjName;

    /** 出发日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出发日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 出发地 */
    @Excel(name = "出发地")
    private String startAddress;

    /** 到达日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到达日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 到达地 */
    @Excel(name = "到达地")
    private String endAddress;

    /** 乘车日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "乘车日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date trfficeDate;

    /** 上车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上车时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 下车时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下车时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal amount;

    /** 招待日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "招待日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date societyDate;

    /** 客户信息 */
    @Excel(name = "客户信息")
    private String customInf;

    /** 陪同人员信息 */
    @Excel(name = "陪同人员信息")
    private String personInf;

    /** 总消费人数 */
    @Excel(name = "总消费人数")
    private Integer allNum;

    /** 消费金额 */
    @Excel(name = "消费金额")
    private BigDecimal allAmount;

    /** 人均消费 */
    @Excel(name = "人均消费")
    private BigDecimal averAmount;

    /** 招待地点 */
    @Excel(name = "招待地点")
    private String societyAddress;

    /** 票据类型 */
    @Excel(name = "票据类型")
    private String pType;

    /** 管理类别 */
    @Excel(name = "管理类别")
    private String mType;

    /** 展览会名称 */
    @Excel(name = "展览会名称")
    private String exhibitName;

    /** 地点 */
    @Excel(name = "地点")
    private String address;

    /** 主办部门 */
    @Excel(name = "主办部门")
    private String deptContent;

    /** 本单位参加人数 */
    @Excel(name = "本单位参加人数")
    private Integer personCount;

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }
    public void setrId(String rId)
    {
        this.rId = rId;
    }

    public String getrId()
    {
        return rId;
    }
    public void setPrjCode(String prjCode)
    {
        this.prjCode = prjCode;
    }

    public String getPrjCode()
    {
        return prjCode;
    }
    public void setPrjName(String prjName)
    {
        this.prjName = prjName;
    }

    public String getPrjName()
    {
        return prjName;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }
    public void setStartAddress(String startAddress)
    {
        this.startAddress = startAddress;
    }

    public String getStartAddress()
    {
        return startAddress;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setEndAddress(String endAddress)
    {
        this.endAddress = endAddress;
    }

    public String getEndAddress()
    {
        return endAddress;
    }
    public void setTrfficeDate(Date trfficeDate)
    {
        this.trfficeDate = trfficeDate;
    }

    public Date getTrfficeDate()
    {
        return trfficeDate;
    }
    public void setStartTime(Date startTime)
    {
        this.startTime = startTime;
    }

    public Date getStartTime()
    {
        return startTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setSocietyDate(Date societyDate)
    {
        this.societyDate = societyDate;
    }

    public Date getSocietyDate()
    {
        return societyDate;
    }
    public void setCustomInf(String customInf)
    {
        this.customInf = customInf;
    }

    public String getCustomInf()
    {
        return customInf;
    }
    public void setPersonInf(String personInf)
    {
        this.personInf = personInf;
    }

    public String getPersonInf()
    {
        return personInf;
    }
    public void setAllNum(Integer allNum)
    {
        this.allNum = allNum;
    }

    public Integer getAllNum()
    {
        return allNum;
    }
    public void setAllAmount(BigDecimal allAmount)
    {
        this.allAmount = allAmount;
    }

    public BigDecimal getAllAmount()
    {
        return allAmount;
    }
    public void setAverAmount(BigDecimal averAmount)
    {
        this.averAmount = averAmount;
    }

    public BigDecimal getAverAmount()
    {
        return averAmount;
    }
    public void setSocietyAddress(String societyAddress)
    {
        this.societyAddress = societyAddress;
    }

    public String getSocietyAddress()
    {
        return societyAddress;
    }
    public void setpType(String pType)
    {
        this.pType = pType;
    }

    public String getpType()
    {
        return pType;
    }
    public void setmType(String mType)
    {
        this.mType = mType;
    }

    public String getmType()
    {
        return mType;
    }
    public void setExhibitName(String exhibitName)
    {
        this.exhibitName = exhibitName;
    }

    public String getExhibitName()
    {
        return exhibitName;
    }
    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getAddress()
    {
        return address;
    }
    public void setDeptContent(String deptContent)
    {
        this.deptContent = deptContent;
    }

    public String getDeptContent()
    {
        return deptContent;
    }
    public void setPersonCount(Integer personCount)
    {
        this.personCount = personCount;
    }

    public Integer getPersonCount()
    {
        return personCount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("rId", getrId())
            .append("prjCode", getPrjCode())
            .append("prjName", getPrjName())
            .append("startDate", getStartDate())
            .append("startAddress", getStartAddress())
            .append("endDate", getEndDate())
            .append("endAddress", getEndAddress())
            .append("trfficeDate", getTrfficeDate())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("amount", getAmount())
            .append("societyDate", getSocietyDate())
            .append("customInf", getCustomInf())
            .append("personInf", getPersonInf())
            .append("allNum", getAllNum())
            .append("allAmount", getAllAmount())
            .append("averAmount", getAverAmount())
            .append("societyAddress", getSocietyAddress())
            .append("pType", getpType())
            .append("mType", getmType())
            .append("exhibitName", getExhibitName())
            .append("address", getAddress())
            .append("deptContent", getDeptContent())
            .append("personCount", getPersonCount())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }

    /** 搜索值 */
    private String searchValue;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;

    /** 开始时间 */
    @JsonIgnore
    private String beginTime;

    /** 请求参数 */
    private Map<String, Object> params;

    public String getSearchValue()
    {
        return searchValue;
    }

    public void setSearchValue(String searchValue)
    {
        this.searchValue = searchValue;
    }

    public String getCreateBy()
    {
        return createBy;
    }

    public void setCreateBy(String createBy)
    {
        this.createBy = createBy;
    }

    public Date getCreateTime()
    {
        return createTime;
    }

    public void setCreateTime(Date createTime)
    {
        this.createTime = createTime;
    }

    public String getUpdateBy()
    {
        return updateBy;
    }

    public void setUpdateBy(String updateBy)
    {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime()
    {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime)
    {
        this.updateTime = updateTime;
    }

    public String getRemark()
    {
        return remark;
    }

    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    public String getBeginTime()
    {
        return beginTime;
    }

    public void setBeginTime(String beginTime)
    {
        this.beginTime = beginTime;
    }

    public Map<String, Object> getParams()
    {
        if (params == null)
        {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params)
    {
        this.params = params;
    }
}
